package com.prj.ufdm.cloud.ms.core.bpo;

import java.util.List;

/** 
* @Description: 通用BPO接口
* @date 2016年3月8日 
* @author 1936
*/
public interface BaseBPO<T> {
	
	/**
	 * DESC: 通用根据ID查询对象
	 * @auther 胡义振
	 * @date 2018-03-26 
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public T doGetById(String id) throws Exception;
	
    /**
     * DESC: 通用查询列表
     * @auther 胡义振
     * @date 2018-03-26 
     * @param object 查询参数
     * @return 查询结果集
     * @throws Exception
     */
	public List<T> doGetList(T object) throws Exception;
	
	/**
	 * DESC: 通用查询总数
	 * @auther 胡义振
	 * @date 2013-5-28 
	 * @param object 查询参数
	 * @return 查询总数
	 * @throws Exception
	 */
	public Integer doGetTotal(T object) throws Exception;
	
	/**
	 * DESC: 通用单条操作
	 * @auther 胡义振
	 * @date 2018-03-26 
	 * @param object 要保存的对象
	 * @return 保存的ID
	 * @throws Exception
	 */
	public int doSave(T object) throws Exception;
	
	/**
	 * DESC: 通用批量操作
	 * @auther 胡义振
	 * @date 2018-03-26 
	 * @param listObject 要保存的对象
	 * @return 保存的ID
	 * @throws Exception
	 */
	public int doSaveBatch(List<T> listObject) throws Exception;
	/**
	 * DESC: 通用更新操作
	 * @auther 胡义振
	 * @date 2018-03-26 
	 * @param object 要修改的对象
	 * @return 更新条数
	 * @throws Exception
	 */
	public int doModById(T object) throws Exception;
	
	/**
	 * DESC: 通用批量更新操作
	 * @auther 胡义振
	 * @date 2018-03-26 
	 * @param object 要修改的对象
	 * @return 更新条数
	 * @throws Exception
	 */
	public int doModBatchById(List<T> object) throws Exception;
	
	/**
	 * DESC: 通用删除操作
	 * @auther 胡义振
	 * @date 2018-03-26 
	 * @param id 要删除的ID
	 * @return 删除条数
	 * @throws Exception
	 */
	public int doRmById(String id) throws Exception;

	/**
	 * DESC: 通用删除多条
	 * @auther 胡义振
	 * @date 2018-03-26 
	 * @param ids 要删除的ID（多条以“,”号分割）
	 * @return 删除条数
	 * @throws Exception
	 */
	public int doRmByIds(String ids) throws Exception;


}
